package com.keepmoving.dao;

import com.keepmoving.po.Order;
import com.keepmoving.vo.CountUser;
import com.keepmoving.vo.CourseOrder;

import java.util.List;

/**
 * @author 魏范彬
 * @author gyy
 * 订单数据访问接口
 */
public interface OrderDao {

    /**
     * 查询所有的订单集合
     * @return 订单集合
     */
    public List<Order> findAll();

    /**
     * 根据lId，查询出订单集合
     * @param lId
     * @return 订单集合
     */
    public List<Order> findBylId(int lId);

    /**
     * 根据订单编号，查询订单对象
     * @param oId
     * @return 订单对象
     */
    public Order findByoId(int oId);

    /**
     * 添加一个订单信息
     * @param order
     * @return 返回受影响行数
     */
    public int insert(Order order);

    /**
     * 批量删除
     * @param oIds
     * @return 返回受影响行数
     */
    public int delete(int[] oIds);
    /**
     * 批量删除
     * @param oIds
     * @return 返回受影响行数
     */
    public int deleteOrder(int[] oIds);

    /**
     * 根据oId删除订单
     * @param oId
     * @return 返回受影响行数
     */
    public int deleteByoId(int oId);

    /**
     * 更新
     * @param order
     * @return 返回受影响行数
     */
    public int update(Order order);




    /**
     * 根据课程编号课程预约
     * @param cId 课程预约
     * @return 预约课程集合
     */
    public List<CourseOrder> findByCourseByCid(int cId);

    /**
     * 通过用户的lId，查询出订单集合
     * @param lId
     * @return 订单集合
     */
    public List<CourseOrder> findByCourseBylId(int lId);

    /**

     * 预约课程集合
     */
    public List<CourseOrder> findByCourse();

    /**
     * 统计教练对应的人数
     * @return 对象集合
     */
    public List<CountUser> findCount();
}
